\documentclass{ctexart}

\usepackage{graphicx}
\usepackage{float}
\usepackage{subfigure}
\usepackage{amsmath}

\title{排序算法类的实现}



\author{赖心怡 \\  医学实验班(临床医学八年制) 3210100987}

\begin{document}
\sloppy
\maketitle

\section{设计思路}
完成替代作业:给 $Figure 7.10 ~ 7.17$ 中全部代码逐行写中文注释

$Figure 7.10$ : 堆排序, 建立每个节点的值都大于或者等于他的左右孩子节点的值的完全二叉树,将这种结构映射到数组,不断将最大的数即顶端交换到末尾,反复执行即可得到有序数组.

$Figure 7.11$ : 归并排序, 建立在递归算法上,将已有序的子序列合并,得到完全有序的序列; 将待排序的线性表不断切分至每个子列只包含一个元素, 此时可认为其有序, 两两合并至最后.

$Figure 7.12$ : 实现将两子序列合并的 \verb|merge| 函数的具体实现.

$FIgure 7.13$ : 一种简单的排序算法, 类似快排原理, 任选一项将 \verb|vector| 分成三组: 小于所选 \verb|item|, 等于 \verb|item|, 大于 \verb|item|, 递归地对第一组和第三组排序后连接三个组.

$FIgure 7.15$ : Driver for quicksort

$Figure 7.16$ : 快排算法中一种选择 \verb|pivot| 的方法, 三数取中法 : 选取第一个元素, 最后一个元素, 最中间的元素, 选其中位数作为 \verb|pivot|.

$Figure 7.17$ : 快速排序, 设定一个分界值 \verb|pivot|, 通过多次比较和交换将数组分成左右两部分, 大于或等于分界值的数据集中到右边, 小于分界值的数据集中到左边, 通过递归将各部分排序.

\end{document}
